シンボリックリンクを忘れるな

brewとpythonとgcc/g++の話

私はpythonの環境はpyenvに任せています。
そんなに頻繁に切り替える必要もないため、予備として複数のバージョンを用意する程度にしか使っていません。

所用でpy_entitymatchingという名寄せを行うパッケージを扱う必要があり、pip installすることに。
すると怒涛のエラー。
そこで私は何を考えたか、エラー文も読むことなく、
「バージョン他にもあるし他のバージョンで試してみよう!」と考え、全滅しました。
全てのバージョンでinstallに失敗したのですが、全てのエラー文が違います。
読むのが大儀になった私は、一度別の環境でinstallに成功したこともあって、pyenv installで新しくまっさらな状態からinstallすれば成功するはずと考え、そして失敗しました。

五里霧中となった私は、とりあえず就寝し、朝になってエラー文を読んでみました。
そのエラー文は奇しくも初めのinstall error時に出力されたエラーでした。

すると何やらgccg++が失敗している様子です。
そこでローカルのgcc/g++のバージョンを確認するも別段古くはなさそう。
しかし物は試しとbrew upgrade gcc g++とするとすでにアップグレード済みだとbrewに呆れられます。
そううまい話はないかと、気落ちしたのですが、brewでinstallしたgccのバージョンがgcc -vと食い違っていることに気づきます。どうも/usr/bin/以下のgccをみているらしく、
「あー、PATHの優先順序を書き換えちゃったのか」
とひと段落。
/usr/local/bin/を優先にし、シンボリックリンクを貼り、再度試すと動きました。

pyenvごめんよ。ずっと君のせいだと思ってた。

social